Routing of Questions to Appropriately Trained Question and Answer System Pipelines Using Clustering

ABSTRACT

Mechanisms for selecting a pipeline of a question and answer (QA) system to process an input question are provided. An input question is received and analyzed to identify at least one feature of the input question. Clustering of the input question, with one or more previously generated clusters of questions, is performed based on the at least one feature of the input question. Based on results of the clustering, a matching cluster, of the one or more previously generated clusters, is identified with which the input question is associated. A QA system pipeline associated with the matching cluster is identified and the input question is processed using the identified QA system pipeline to generate one or more candidate answers for the input question. Each cluster in the one or more previously generated clusters has an associated QA system pipeline.

BACKGROUND

The present application relates generally to an improved data processingapparatus and method and more specifically to mechanisms for routingquestions to appropriately trained question and answer system pipelinesusing clustering of the questions.

With the increased usage of computing networks, such as the Internet,humans are currently inundated and overwhelmed with the amount ofinformation available to them from various structured and unstructuredsources. However, information gaps abound as users try to piece togetherwhat they can find that they believe to be relevant during searches forinformation on various subjects. To assist with such searches, recentresearch has been directed to generating Question and Answer (QA)systems which may take an input question, analyze it, and return resultsindicative of the most probable answer to the input question. QA systemsprovide automated mechanisms for searching through large sets of sourcesof content, e.g., electronic documents, and analyze them with regard toan input question to determine an answer to the question and aconfidence measure as to how accurate an answer is for answering theinput question.

One such QA system is the Watson™ system available from InternationalBusiness Machines (IBM) Corporation of Armonk, N.Y. The Watson™ systemis an application of advanced natural language processing, informationretrieval, knowledge representation and reasoning, and machine learningtechnologies to the field of open domain question answering. The Watson™system is built on IBM's DeepQA™ technology used for hypothesisgeneration, massive evidence gathering, analysis, and scoring. DeepQA™takes an input question, analyzes it, decomposes the question intoconstituent parts, generates one or more hypothesis based on thedecomposed question and results of a primary search of answer sources,performs hypothesis and evidence scoring based on a retrieval ofevidence from evidence sources, performs synthesis of the one or morehypothesis, and based on trained models, performs a final merging andranking to output an answer to the input question along with aconfidence measure.

Various United States patent application Publications describe varioustypes of question and answer systems. U.S. Patent ApplicationPublication No. 2011/0125734 discloses a mechanism for generatingquestion and answer pairs based on a corpus of data. The system startswith a set of questions and then analyzes the set of content to extractanswer to those questions. U.S. Patent Application Publication No.2011/0066587 discloses a mechanism for converting a report of analyzedinformation into a collection of questions and determining whetheranswers for the collection of questions are answered or refuted from theinformation set. The results data are incorporated into an updatedinformation model.

SUMMARY

In one illustrative embodiment, a method, in a data processing systemcomprising a processor and a memory, for selecting a pipeline of aquestion and answer (QA) system to process an input question areprovided. The method comprises receiving, in the data processing system,an input question and analyzing, by the data processing system, theinput question to identify at least one feature of the input question.The method further comprises performing, by the data processing system,clustering of the input question with one or more previously generatedclusters of questions based on the at least one feature of the inputquestion. In addition, the method comprises identifying, by the dataprocessing system, based on results of the clustering, a matchingcluster, of the one or more previously generated clusters, with whichthe input question is associated. Furthermore, the method comprisesidentifying, by the data processing system, a QA system pipelineassociated with the matching cluster. The method also comprisesprocessing, by the data processing system, the input question using theidentified QA system pipeline to generate one or more candidate answersfor the input question, wherein each cluster in the one or morepreviously generated clusters has an associated QA system pipeline.

In other illustrative embodiments, a computer program product comprisinga computer useable or readable medium having a computer readable programis provided. The computer readable program, when executed on a computingdevice, causes the computing device to perform various ones of, andcombinations of, the operations outlined above with regard to the methodillustrative embodiment.

In yet another illustrative embodiment, a system/apparatus is provided.The system/apparatus may comprise one or more processors and a memorycoupled to the one or more processors. The memory may compriseinstructions which, when executed by the one or more processors, causethe one or more processors to perform various ones of, and combinationsof, the operations outlined above with regard to the method illustrativeembodiment.

These and other features and advantages of the present invention will bedescribed in, or will become apparent to those of ordinary skill in theart in view of, the following detailed description of the exampleembodiments of the present invention.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

The invention, as well as a preferred mode of use and further objectivesand advantages thereof, will best be understood by reference to thefollowing detailed description of illustrative embodiments when read inconjunction with the accompanying drawings, wherein:

FIG. 1 depicts a schematic diagram of one illustrative embodiment of aquestion/answer (QA) system in a computer network;

FIG. 2 depicts a schematic diagram of one embodiment of the QA system ofFIG. 1;

FIG. 3 depicts a flowchart diagram of one embodiment of a method forquestion/answer creation for a document;

FIG. 4 depicts a flowchart diagram of one embodiment of a method forquestion/answer creation for a document;

FIG. 5 is an example block diagram of a question and answer systemanalysis pipeline in accordance with one illustrative embodiment;

FIG. 6 illustrates a plot of clusters and a candidate question inaccordance with one illustrative embodiment;

FIG. 7 provides an example plot of training clusters and an inputquestion in accordance with one illustrative embodiment;

FIG. 8 is an example block diagram of a clustering and routing engine inaccordance with one illustrative embodiment;

FIG. 9 is a flowchart outlining an example operation for generatingtraining question clusters in accordance with one illustrativeembodiment;

FIG. 10 is a flowchart outlining an example operation for generating atesting question set in accordance with one illustrative embodiment; and

FIG. 11 is a flowchart outlining an example operation for processing aninput question during runtime operation of a QA system in accordancewith one illustrative embodiment.

DETAILED DESCRIPTION

The illustrative embodiments provide mechanisms for improving thetraining and operation of a Question and Answer (QA) system based onclustering of questions according to their extractedfeatures/attributes. That is, when a QA system, such as the Watson™system mentioned above, is configured, it is subjected to a trainingoperation that consists of one or more runs of one or more sets oftraining questions. The operation and results generated by the QA systemare monitored and the configuration of the QA system is modified toimprove the results generated by the QA system, e.g., data, algorithms,and/or configuration settings are modified such that the QA systemanswers a high percentage of the training questions accurately, wherethe requisite percentage of training questions accurately may bespecified by one or more threshold values. Once the training is done toa desired level of satisfaction, the QA system is ready to be testedwith a different set of questions, i.e. a testing set of questions.

It should be appreciated that currently, training and test questions aretaken from the same large group of questions and are selectedarbitrarily, and sometimes subjectively based on a human analyst'sinterpretation of the questions. Thus, there may be an overlap in thequestions sets used for training and testing. This causes an issue inthat often it is desirable to ensure that the testing set of questionsis a separate and distinct set of questions from that of the trainingset of questions to ensure that the QA system is being testedappropriately, i.e. ensuring that the QA system is being tested with acomputationally different set of questions than the set of questionswith which the QA system was trained.

In addition, often times it is desirable for a QA system to beconfigured to operate on a wide number of domains, e.g., subject mattercategories. For example, a QA system may operate on questions concerningthe healthcare domain, an aerospace domain, a financial industry domain,or any of a plethora of other domains. Without specialized training ineach of these domains, the results generated by the QA system may beless than desirable. One solution to such a dilemma is to configure theQA system with multiple pipelines, each pipeline configured andoptimized for a specific domain. Thus, in the example above, the QAsystem may have a pipeline optimized for the healthcare domain, a secondpipeline optimized for the aerospace domain, a third pipeline optimizedfor the financial industry domain, and so on. A problem arises, however,with regard to the routing of a question to a correct pipeline in the QAsystem that is most likely to provide the best answer results.

The illustrative embodiments provide mechanisms for improving thetraining and runtime operation of QA systems through the clustering ofquestions in accordance with the features/attributes extracted from thequestions. In one aspect of the illustrative embodiments, as part of aquestion analysis phase, the question analyzed to identify variousfeatures/attributes of the question, e.g., focus, lexical answer type(LAT), question classification (QClass), and question sections(QSections). These extracted features/attributes are used as input to aclustering engine which clusters questions according to similarfeatures/attributes. Based on the generated clusters, the centers of theclusters are determined and subsequently submitted questions may besimilarly clustered, such as by measuring the Euclidean dimensionaldistance of the subsequent questions from cluster centers. Depending onthe training/testing objective, the subsequently submitted questions canbe either accepted or rejected based on the clustering of thesubsequently submitted questions with regard to the defined clusters.For example, during training, the subsequently submitted questions maybe accepted as being part of the closest cluster to thereby add to thedefinition of that cluster. During testing, a subsequently submittedquestion may be rejected as being too computationally similar totraining questions if the question's distance from a closest clustercenter is smaller than a predetermined threshold or may be accepted ifthe question's distance from a closest cluster center is equal to orgreater than the predetermined threshold. Alternatively, the testingquestion may be accepted if the objective is to identify testingquestions that have a high likelihood of being answered correctly by thetrained QA system since the closeness of the testing question to adefined cluster indicates that the QA system has been trained to answersignificantly similar questions.

In addition, in another aspect of the illustrative embodiments, the QAsystem may comprise a plurality of pipelines trained according toseparate domains. Such training may be done using the clustering ofquestions noted above or in another manner. That is, during training,the QA system is trained with a set of training questions that areclustered according to the extracted features/attributes of thequestions. Each cluster may be associated with a different domain andmay have its own associated pipeline in the QA system. Thus, eachcluster represents the questions intended for a particular pipeline.

When a new question is received, it is clustered according to thesimilarly of extracted features/attributes of the new question with thefeatures/attributes of the training questions that generated the variousclusters. Through this clustering, one can determine the closest clusterfor the new question and the corresponding pipeline. The new questionmay then be submitted to the pipeline corresponding to the closestcluster. If the question is deemed to overlap question clusters betweenpipelines, then the new question may be submitted to multiple pipelinesin approximately a parallel manner. The user may then be presented withmultiple answers from multiple pipelines and may provide feedback as towhich answer and supporting passage the user feels is the best answerfor the question. The question is then associated with the cluster ofquestions from the specific pipeline that provided the best answer. As aresult, over time, the QA system becomes more accurate as the clustersare augmented with information about additional questions clustered inthe manner described above.

The above aspects and advantages of the illustrative embodiments of thepresent invention will be described in greater detail hereafter withreference to the accompanying figures. It should be appreciated that thefigures are only intended to be illustrative of exemplary embodiments ofthe present invention. The present invention may encompass aspects,embodiments, and modifications to the depicted exemplary embodiments notexplicitly shown in the figures but would be readily apparent to thoseof ordinary skill in the art in view of the present description of theillustrative embodiments.

As will be appreciated by one skilled in the art, aspects of the presentinvention may be embodied as a system, method, or computer programproduct. Accordingly, aspects of the present invention may take the formof an entirely hardware embodiment, an entirely software embodiment(including firmware, resident software, micro-code, etc.) or anembodiment combining software and hardware aspects that may allgenerally be referred to herein as a “circuit,” “module” or “system.”Furthermore, aspects of the present invention may take the form of acomputer program product embodied in any one or more computer readablemedium(s) having computer usable program code embodied thereon.

Any combination of one or more computer readable medium(s) may beutilized. The computer readable medium may be a computer readable signalmedium or a computer readable storage medium. A computer readablestorage medium may be a system, apparatus, or device of an electronic,magnetic, optical, electromagnetic, or semiconductor nature, anysuitable combination of the foregoing, or equivalents thereof. Morespecific examples (a non-exhaustive list) of the computer readablestorage medium would include the following: an electrical device havinga storage capability, a portable computer diskette, a hard disk, arandom access memory (RAM), a read-only memory (ROM), an erasableprogrammable read-only memory (EPROM or Flash memory), an optical fiberbased device, a portable compact disc read-only memory (CDROM), anoptical storage device, a magnetic storage device, or any suitablecombination of the foregoing. In the context of this document, acomputer readable storage medium may be any tangible medium that cancontain or store a program for use by, or in connection with, aninstruction execution system, apparatus, or device.

In some illustrative embodiments, the computer readable medium is anon-transitory computer readable medium. A non-transitory computerreadable medium is any medium that is not a disembodied signal orpropagation wave, i.e. pure signal or propagation wave per se. Anon-transitory computer readable medium may utilize signals andpropagation waves, but is not the signal or propagation wave itself.Thus, for example, various forms of memory devices, and other types ofsystems, devices, or apparatus, that utilize signals in any way, suchas, for example, to maintain their state, may be considered to benon-transitory computer readable media within the scope of the presentdescription.

A computer readable signal medium, on the other hand, may include apropagated data signal with computer readable program code embodiedtherein, for example, in a baseband or as part of a carrier wave. Such apropagated signal may take any of a variety of forms, including, but notlimited to, electro-magnetic, optical, or any suitable combinationthereof. A computer readable signal medium may be any computer readablemedium that is not a computer readable storage medium and that cancommunicate, propagate, or transport a program for use by or inconnection with an instruction execution system, apparatus, or device.Similarly, a computer readable storage medium is any computer readablemedium that is not a computer readable signal medium.

Computer code embodied on a computer readable medium may be transmittedusing any appropriate medium, including but not limited to wireless,wireline, optical fiber cable, radio frequency (RF), etc., or anysuitable combination thereof.

Computer program code for carrying out operations for aspects of thepresent invention may be written in any combination of one or moreprogramming languages, including an object oriented programming languagesuch as Java™, Smalltalk™, C++, or the like, and conventional proceduralprogramming languages, such as the “C” programming language or similarprogramming languages. The program code may execute entirely on theuser's computer, partly on the user's computer, as a stand-alonesoftware package, partly on the user's computer and partly on a remotecomputer, or entirely on the remote computer or server. In the latterscenario, the remote computer may be connected to the user's computerthrough any type of network, including a local area network (LAN) or awide area network (WAN), or the connection may be made to an externalcomputer (for example, through the Internet using an Internet ServiceProvider).

Aspects of the present invention are described below with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems) and computer program products according to the illustrativeembodiments of the invention. It will be understood that each block ofthe flowchart illustrations and/or block diagrams, and combinations ofblocks in the flowchart illustrations and/or block diagrams, can beimplemented by computer program instructions. These computer programinstructions may be provided to a processor of a general purposecomputer, special purpose computer, or other programmable dataprocessing apparatus to produce a machine, such that the instructions,which execute via the processor of the computer or other programmabledata processing apparatus, create means for implementing thefunctions/acts specified in the flowchart and/or block diagram block orblocks.

These computer program instructions may also be stored in a computerreadable medium that can direct a computer, other programmable dataprocessing apparatus, or other devices to function in a particularmanner, such that the instructions stored in the computer readablemedium produce an article of manufacture including instructions thatimplement the function/act specified in the flowchart and/or blockdiagram block or blocks.

The computer program instructions may also be loaded onto a computer,other programmable data processing apparatus, or other devices to causea series of operational steps to be performed on the computer, otherprogrammable apparatus, or other devices to produce a computerimplemented process such that the instructions which execute on thecomputer or other programmable apparatus provide processes forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks.

The flowchart and block diagrams in the figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods and computer program products according to variousembodiments of the present invention. In this regard, each block in theflowchart or block diagrams may represent a module, segment, or portionof code, which comprises one or more executable instructions forimplementing the specified logical function(s). It should also be notedthat, in some alternative implementations, the functions noted in theblock may occur out of the order noted in the figures. For example, twoblocks shown in succession may, in fact, be executed substantiallyconcurrently, or the blocks may sometimes be executed in the reverseorder, depending upon the functionality involved. It will also be notedthat each block of the block diagrams and/or flowchart illustration, andcombinations of blocks in the block diagrams and/or flowchartillustration, can be implemented by special purpose hardware-basedsystems that perform the specified functions or acts, or combinations ofspecial purpose hardware and computer instructions.

FIGS. 1-5 are directed to describing an example Question/Answer,Question and Answer, or Question Answering (QA) system, methodology, andcomputer program product with which the mechanisms of the illustrativeembodiments may be implemented. As will be discussed in greater detailhereafter, the illustrative embodiments may be integrated in, and mayaugment and extend the functionality of, these QA mechanisms with regardto clustering questions based on identified attributes of the questionsfor purposes of training the QA system and/or identifying a confidencethat a subsequently submitted question is likely to be answeredcorrectly based on how well the question matches a previously definedquestion cluster generated during training.

Thus, it is important to first have an understanding of how question andanswer creation in a QA system may be implemented before describing howthe mechanisms of the illustrative embodiments are integrated in andaugment such QA systems. It should be appreciated that the QA mechanismsdescribed in FIGS. 1-5 are only examples and are not intended to stateor imply any limitation with regard to the type of QA mechanisms withwhich the illustrative embodiments may be implemented. Manymodifications to the example QA system shown in FIGS. 1-5 may beimplemented in various embodiments of the present invention withoutdeparting from the spirit and scope of the present invention.

QA mechanisms operate by accessing information from a corpus of data orinformation (also referred to as a corpus of content), analyzing it, andthen generating answer results based on the analysis of this data.Accessing information from a corpus of data typically includes: adatabase query that answers questions about what is in a collection ofstructured records, and a search that delivers a collection of documentlinks in response to a query against a collection of unstructured data(text, markup language, etc.). Conventional question answering systemsare capable of generating answers based on the corpus of data and theinput question, verifying answers to a collection of questions for thecorpus of data, correcting errors in digital text using a corpus ofdata, and selecting answers to questions from a pool of potentialanswers, i.e. candidate answers.

Content creators, such as article authors, electronic document creators,web page authors, document database creators, and the like, maydetermine use cases for products, solutions, and services described insuch content before writing their content. Consequently, the contentcreators may know what questions the content is intended to answer in aparticular topic addressed by the content. Categorizing the questions,such as in terms of roles, type of information, tasks, or the like,associated with the question, in each document of a corpus of data mayallow the QA system to more quickly and efficiently identify documentscontaining content related to a specific query. The content may alsoanswer other questions that the content creator did not contemplate thatmay be useful to content users. The questions and answers may beverified by the content creator to be contained in the content for agiven document. These capabilities contribute to improved accuracy,system performance, machine learning, and confidence of the QA system.

FIG. 1 depicts a schematic diagram of one illustrative embodiment of aquestion/answer creation (QA) system 100 in a computer network 102. Oneexample of a question/answer generation which may be used in conjunctionwith the principles described herein is described in U.S. PatentApplication Publication No. 2011/0125734, which is herein incorporatedby reference in its entirety. The QA system 100 may include a computingdevice 104 (comprising one or more processors and one or more memories,and potentially any other computing device elements generally known inthe art including buses, storage devices, communication interfaces, andthe like) connected to the computer network 102. The network 102 mayinclude multiple computing devices 104 in communication with each otherand with other devices or components via one or more wired and/orwireless data communication links, where each communication link maycomprise one or more of wires, routers, switches, transmitters,receivers, or the like. The QA system 100 and network 102 may enablequestion/answer (QA) generation functionality for one or more contentusers. Other embodiments of the QA system 100 may be used withcomponents, systems, sub-systems, and/or devices other than those thatare depicted herein.

The QA system 100 may be configured to receive inputs from varioussources. For example, the QA system 100 may receive input from thenetwork 102, a corpus of electronic documents 106 or other data, acontent creator 108, content users, and other possible sources of input.In one embodiment, some or all of the inputs to the QA system 100 may berouted through the network 102. The various computing devices 104 on thenetwork 102 may include access points for content creators and contentusers. Some of the computing devices 104 may include devices for adatabase storing the corpus of data. The network 102 may include localnetwork connections and remote connections in various embodiments, suchthat the QA system 100 may operate in environments of any size,including local and global, e.g., the Internet.

In one embodiment, the content creator creates content in a document 106for use as part of a corpus of data with the QA system 100. The document106 may include any file, text, article, or source of data for use inthe QA system 100. Content users may access the QA system 100 via anetwork connection or an Internet connection to the network 102, and mayinput questions to the QA system 100 that may be answered by the contentin the corpus of data. In one embodiment, the questions may be formedusing natural language. The QA system 100 may interpret the question andprovide a response to the content user containing one or more answers tothe question. In some embodiments, the QA system 100 may provide aresponse to users in a ranked list of answers.

In some illustrative embodiments, the QA system 100 may be the Watson™QA system available from International Business Machines Corporation ofArmonk, N.Y., which is augmented with the mechanisms of the illustrativeembodiments described hereafter. The Watson™ QA system may receive aninput question which it then parses to extract the major features of thequestion, that in turn are then used to formulate queries that areapplied to the corpus of data. Based on the application of the queriesto the corpus of data, a set of hypotheses, or candidate answers to theinput question, are generated by looking across the corpus of data forportions of the corpus of data that have some potential for containing avaluable response to the input question.

The Watson™ QA system then performs deep analysis on the language of theinput question and the language used in each of the portions of thecorpus of data found during the application of the queries using avariety of reasoning algorithms. There may be hundreds or even thousandsof reasoning algorithms applied, each of which performs differentanalysis, e.g., comparisons, and generates a score. For example, somereasoning algorithms may look at the matching of terms and synonymswithin the language of the input question and the found portions of thecorpus of data. Other reasoning algorithms may look at temporal orspatial features in the language, while others may evaluate the sourceof the portion of the corpus of data and evaluate its veracity.

The scores obtained from the various reasoning algorithms indicate theextent to which the potential response is inferred by the input questionbased on the specific area of focus of that reasoning algorithm. Eachresulting score is then weighted against a statistical model. Thestatistical model captures how well the reasoning algorithm performed atestablishing the inference between two similar passages for a particulardomain during the training period of the Watson™ QA system. Thestatistical model may then be used to summarize a level of confidencethat the Watson™ QA system has regarding the evidence that the potentialresponse, i.e. candidate answer, is inferred by the question. Thisprocess may be repeated for each of the candidate answers until theWatson™ QA system identifies candidate answers that surface as beingsignificantly stronger than others and thus, generates a final answer,or ranked set of answers, for the input question. More information aboutthe Watson™ QA system may be obtained, for example, from the IBMCorporation website, IBM Redbooks, and the like. For example,information about the Watson™ QA system can be found in Yuan et al.,“Watson and Healthcare,” IBM developerWorks, 2011 and “The Era ofCognitive Systems: An Inside Look at IBM Watson and How it Works” by RobHigh, IBM Redbooks, 2012.

FIG. 2 depicts a schematic diagram of one embodiment of the QA system100 of FIG. 1. The depicted QA system 100 includes various components,described in more detail below, that are capable of performing thefunctions and operations described herein. In one embodiment, at leastsome of the components of the QA system 100 are implemented in acomputer system. For example, the functionality of one or morecomponents of the QA system 100 may be implemented by computer programinstructions stored on a computer memory device 200 and executed by aprocessing device, such as a CPU. The QA system 100 may include othercomponents, such as a disk storage drive 204, and input/output devices206, and at least one document 106 from a corpus 208. Some or all of thecomponents of the QA system 100 may be stored on a single computingdevice 104 or on a network of computing devices 104, including awireless communication network. The QA system 100 may include more orfewer components or subsystems than those depicted herein. In someembodiments, the QA system 100 may be used to implement the methodsdescribed herein as depicted in FIG. 4 and may be augmented orconfigured to implement the additional operations, functionality, andfeatures described hereafter with regard to the illustrative embodimentsdescribes in conjunction with the subsequent figures.

In one embodiment, the QA system 100 includes at least one computingdevice 104 with a processor 202 for performing the operations describedherein in conjunction with the QA system 100. The processor 202 mayinclude a single processing device or multiple processing devices. Theprocessor 202 may have multiple processing devices in differentcomputing devices 104 over a network such that the operations describedherein may be performed by one or more computing devices 104. Theprocessor 202 is connected to and in communication with the memorydevice. In some embodiments, the processor 202 may store and access dataon the memory device 200 for performing the operations described herein.The processor 202 may also be connected to a storage disk 204, which maybe used for data storage, for example, for storing data from the memorydevice 200, data used in the operations performed by the processor 202,and software for performing the operations described herein.

In one embodiment, the QA system 100 imports a document 106. Theelectronic document 106 may be part of a larger corpus 208 of data orcontent, which may contain electronic documents 106 related to aspecific topic or a variety of topics. The corpus 208 of data mayinclude any number of documents 106 and may be stored in any locationrelative to the QA system 100. The QA system 100 may be capable ofimporting any of the documents 106 in the corpus 208 of data forprocessing by the processor 202. The processor 202 may communicate withthe memory device 200 to store data while the corpus 208 is beingprocessed.

The document 106 may include a set of questions 210 generated by thecontent creator at the time the content was created. When the contentcreator creates the content in the document 106, the content creator maydetermine one or more questions that may be answered by the content orfor specific use cases for the content. The content may be created withthe intent to answer specific questions. These questions may be insertedinto the content, for example, by inserting the set of questions 210into the viewable content/text 214 or in metadata 212 associated withthe document 106. In some embodiments, the set of questions 210 shown inthe viewable text 214 may be displayed in a list in the document 106 sothat the content users may easily see specific questions answered by thedocument 106.

The set of questions 210 created by the content creator at the time thecontent is created may be detected by the processor 202. The processor202 may further create one or more candidate questions 216 from thecontent in the document 106. The candidate questions 216 includequestions that are answered by the document 106, but that may not havebeen entered or contemplated by the content creator. The processor 202may also attempt to answer the set of questions 210 created by thecontent creator and candidate questions 216 extracted from the document106, “extracted” meaning questions that are not explicitly specified bythe content creator but are generated based on analysis of the content.

In one embodiment, the processor 202 determines that one or more of thequestions are answered by the content of the document 106 and lists orotherwise marks the questions that were answered in the document 106.The QA system 100 may also attempt to provide answers 218 for thecandidate questions 216. In one embodiment, the QA system 100 answers218 the set of questions 210 created by the content creator beforecreating the candidate questions 216. In another embodiment, the QAsystem 100 answers 218 the questions and the candidate questions 216 atthe same time.

The QA system 100 may score question/answer pairs generated by thesystem. In such an embodiment, question/answer pairs that meet a scoringthreshold are retained, and question/answer pairs that do not meet thescoring threshold 222 are discarded. In one embodiment, the QA system100 scores the questions and answers separately, such that questionsgenerated by the system 100 that are retained meet a question scoringthreshold, and answers found by the system 100 that are retained meet ananswer scoring threshold. In another embodiment, each question/answerpair is scored according to a question/answer scoring threshold.

After creating the candidate questions 216, the QA system 100 maypresent the questions and candidate questions 216 to the content creatorfor manual user verification. The content creator may verify thequestions and candidate questions 216 for accuracy and relatedness tothe content of the document 106. The content creator may also verifythat the candidate questions 216 are worded properly and are easy tounderstand. If the questions contain inaccuracies or are not wordedproperly, the content creator may revise the content accordingly. Thequestions and candidate questions 216 that have been verified or revisedmay then be stored in the content of the document 106 as verifiedquestions, either in the viewable text 214 or in the metadata 212 orboth.

FIG. 3 depicts a flowchart diagram of one embodiment of a method 300 forquestion/answer creation for a document 106. Although the method 300 isdescribed in conjunction with the QA system 100 of FIG. 1, the method300 may be used in conjunction with any type of QA system.

In one embodiment, the QA system 100 imports 302 one or more electronicdocuments 106 from a corpus 208 of data. This may include retrieving thedocuments 106 from an external source, such as a storage device in alocal or remote computing device 104. The documents 106 may be processedso that the QA system 100 is able to interpret the content of eachdocument 106. This may include parsing the content of the documents 106to identify questions found in the documents 106 and other elements ofthe content, such as in the metadata associated with the documents 106,questions listed in the content of the documents 106, or the like. Thesystem 100 may parse documents using document markup to identifyquestions. For example, if documents are in extensible markup language(XML) format, portions of the documents could have XML question tags. Insuch an embodiment, an XML parser may be used to find appropriatedocument parts. In another embodiment, the documents are parsed usingnative language processing (NLP) techniques to find questions. Forexample, the NLP techniques may include finding sentence boundaries andlooking at sentences that end with a question mark or other methods. TheQA system 100 may use language processing techniques to parse thedocuments 106 into sentences and phrases, for example.

In one embodiment, the content creator creates 304 metadata 212 for adocument 106, which may contain information related to the document 106,such as file information, search tags, questions created by the contentcreator, and other information. In some embodiments, metadata 212 mayalready be stored in the document 106, and the metadata 212 may bemodified according to the operations performed by the QA system 100.Because the metadata 212 is stored with the document content, thequestions created by the content creator may be searchable via a searchengine configured to perform searches on the corpus 208 of data, eventhough the metadata 212 may not be visible when the document 106 isopened by a content user. Thus, the metadata 212 may include any numberof questions that are answered by the content without cluttering thedocument 106.

The content creator may create 306 more questions based on the content,if applicable. The QA system 100 also generates candidate questions 216based on the content that may not have been entered by the contentcreator. The candidate questions 216 may be created using languageprocessing techniques designed to interpret the content of the document106 and generate the candidate questions 216 so that the candidatequestions 216 may be formed using natural language.

When the QA system 100 creates the candidate questions 216 or when thecontent creator enters questions into the document 106, the QA system100 may also locate the questions in the content and answer thequestions using language processing techniques. In one embodiment, thisprocess includes listing the questions and candidate questions 216 forwhich the QA system 100 is able to locate answers 218 in the metadata212. The QA system 100 may also check the corpus 208 of data or anothercorpus 208 for comparing the questions and candidate questions 216 toother content, which may allow the QA system 100 to determine betterways to form the questions or answers 218. Examples of providing answersto questions from a corpus are described in U.S. Patent ApplicationPublication No. 2009/0287678 and U.S. Patent Application Publication No.2009/0292687, which are herein incorporated by reference in theirentirety.

The questions, candidate questions 216, and answers 218 may then bepresented 308 on an interface to the content creator for verification.In some embodiments, the document text and metadata 212 may also bepresented for verification. The interface may be configured to receive amanual input from the content creator for user verification of thequestions, candidate questions 216, and answers 218. For example, thecontent creator may look at the list of questions and answers 218 placedin the metadata 212 by the QA system 100 to verify that the questionsare paired with the appropriate answers 218, and that thequestion-answer pairs are found in the content of the document 106. Thecontent creator may also verify that the list of candidate questions 216and answers 218 placed in the metadata 212 by the QA system 100 arecorrectly paired, and that the candidate question-answer pairs are foundin the content of the document 106. The content creator may also analyzethe questions or candidate questions 216 to verify correct punctuation,grammar, terminology, and other characteristics to improve the questionsor candidate questions 216 for searching and/or viewing by the contentusers. In one embodiment, the content creator may revise poorly wordedor inaccurate questions and candidate questions 216 or content by addingterms, adding explicit questions or question templates that the contentanswers 218, adding explicit questions or question templates that thecontent does not answer, or other revisions. Question templates may beuseful in allowing the content creator to create questions for varioustopics using the same basic format, which may allow for uniformity amongthe different content. Adding questions that the content does not answerto the document 106 may improve the search accuracy of the QA system 100by eliminating content from the search results that is not applicable toa specific search.

After the content creator has revised the content, questions, candidatequestions 216, and answers 218, the QA system 100 may determine 310 ifthe content finished being processed. If the QA system 100 determinesthat the content is finished being processed, the QA system 100 may thenstore 312 the verified document 314, verified questions 316, verifiedmetadata 318, and verified answers 320 in a data store on which thecorpus 208 of data is stored. If the QA system 100 determines that thecontent is not finished being processed—for example if the QA system 100determines that additional questions may be used—the QA system 100 mayperform some or all of the steps again. In one embodiment, the QA system100 uses the verified document and/or the verified questions to createnew metadata 212. Thus, the content creator or QA system 100 may createadditional questions or candidate questions 216, respectively. In oneembodiment, the QA system 100 is configured to receive feedback fromcontent users. When the QA system 100 receives feedback from contentusers, the QA system 100 may report the feedback to the content creator,and the content creator may generate new questions or revise the currentquestions based on the feedback.

FIG. 4 depicts a flowchart diagram of one embodiment of a method 400 forquestion/answer creation for a document 106. Although the method 400 isdescribed in conjunction with the QA system 100 of FIG. 1, the method400 may be used in conjunction with any QA system.

The QA system 100 imports 405 a document 106 having a set of questions210 based on the content of the document 106. The content may be anycontent, for example content directed to answering questions about aparticular topic or a range of topics. In one embodiment, the contentcreator lists and categorizes the set of questions 210 at the top of thecontent or in some other location of the document 106. Thecategorization may be based on the content of the questions, the styleof the questions, or any other categorization technique and maycategorize the content based on various established categories such asthe role, type of information, tasks described, and the like. The set ofquestions 210 may be obtained by scanning the viewable content 214 ofthe document 106 or metadata 212 associated with the document 106. Theset of questions 210 may be created by the content creator when thecontent is created. In one embodiment, the QA system 100 automaticallycreates 410 at least one suggested or candidate question 216 based onthe content in the document 106. The candidate question 216 may be aquestion that the content creator did not contemplate. The candidatequestion 216 may be created by processing the content using languageprocessing techniques to parse and interpret the content. The system 100may detect a pattern in the content of the document 106 that is commonfor other content in the corpus 208 to which the document 106 belongs,and may create the candidate question 216 based on the pattern.

The QA system 100 also automatically generates 415 answers 218 for theset of questions 210 and the candidate question 216 using the content inthe document 106. The QA system 100 may generate the answers 218 for theset of questions 210 and the candidate question 216 at any time aftercreating the questions and candidate question 216. In some embodiments,the answers 218 for the set of questions 210 may be generated during adifferent operation than the answer for the candidate question 216. Inother embodiments, the answers 218 for both the set of questions 210 andthe candidate question 216 may be generated in the same operation.

The QA system 100 then presents 420 the set of questions 210, thecandidate question 216, and the answers 218 for the set of questions 210and the candidate question 216 to the content creator for userverification of accuracy. In one embodiment, the content creator alsoverifies the questions and candidate questions 216 for applicability tothe content of the document 106. The content creator may verify that thecontent actually contains the information contained in the questions,candidate question 216, and respective answers 218. The content creatormay also verify that the answers 218 for the corresponding questions andcandidate question 216 contain accurate information. The content creatormay also verify that any data in the document 106 or generated by the QAsystem 100 in conjunction with the QA system 100 is worded properly.

A verified set of questions 220 may then be stored 425 in the document106. The verified set of questions 220 may include at least one verifiedquestion from the set of questions 210 and the candidate question 216.The QA system 100 populates the verified set of questions 220 withquestions from the set of questions 210 and candidate questions 216 thatare determined by the content creator to be accurate. In one embodiment,any of the questions, candidate questions 216, answers 218, and contentthat is verified by the content creator is stored in the document 106,for example, in a data store of a database.

The above description illustrates the manner by which content creatorsmay generate metadata for use by a QA system 100 when performing answergeneration for input questions. As discussed above, the QA system 100also is used to answer input questions submitted by users via one ormore client computing devices. For example, in a healthcare domain, theQA system 100 may be utilized to receive questions directed to medicalissues, such as diagnosis, treatment, and the like. The QA system 100may process such input questions through a QA system analysis pipelineto evaluate the input question against a corpus of data/information,which may include documents or content having associated metadata aspreviously described above, unstructured documents, or the like, andgenerate one or more potential answers to the input question.

FIG. 5 illustrates a QA system pipeline for processing an input questionin accordance with one illustrative embodiment. It should be appreciatedthat the stages of the QA system pipeline shown in FIG. 5 may beimplemented as one or more software engines, components, or the like,which are configured with logic for implementing the functionalityattributed to the particular stage. Each stage may be implemented usingone or more of such software engines, components or the like. Thesoftware engines, components, etc. may be executed on one or moreprocessors of one or more data processing systems or devices and mayutilize or operate on data stored in one or more data storage devices,memories, or the like, on one or more of the data processing systems.

As shown in FIG. 5, the QA system pipeline 500 comprises a plurality ofstages 510-580 through which the QA system operates to analyze an inputquestion and generate a final response. In an initial question inputstage 510, the QA system receives an input question that is presented ina natural language format. The input question may be obtained from aquestion pool 502 that may be established for training and/or testing ofthe QA system pipeline 500, from a user via a client computing device(not shown) during runtime operation, or the like. That is, a user mayinput, via a user interface of the client computing device, an inputquestion for which the user wishes to obtain an answer, e.g., “Who arePutin's closest advisors?” In response to receiving the input question,the next stage of the QA system pipeline 500, i.e. the question andtopic analysis stage 520, parses the input question using naturallanguage processing (NLP) techniques to extract major features from theinput question, classify the major features according to types, e.g.,names, dates, or any of a plethora of other defined topics. For example,in the example question above, the term “who” may be associated with atopic for “persons” indicating that the identity of a person is beingsought, “Putin” may be identified as a proper name of a person withwhich the question is associated, “closest” may be identified as a wordindicative of proximity or relationship, and “advisors” may beindicative of a noun or other language topic. As mentioned above,similar questions may be submitted via a pre-established question pool502 which may be used for training and/or testing purposes.

The identified major features may then be used during the questiondecomposition stage 530 to decompose the question into one or morequeries that may be applied to the corpus of data/information in orderto generate one or more hypotheses. The queries may be generated in anyknown or later developed query language, such as the Structure QueryLanguage (SQL), or the like. The queries may be applied to one or moredatabases storing information about the electronic texts, documents,articles, websites, and the like, that make up the corpus ofdata/information. The queries being applied to the corpus ofdata/information generate results identifying potential hypotheses foranswering the input question which can be evaluated. That is, theapplication of the queries results in the extraction of portions of thecorpus of data/information matching the criteria of the particularquery. These portions of the corpus may then be analyzed and used,during the hypothesis generation stage 540, to generate hypotheses foranswering the input question. These hypotheses are also referred toherein as “candidate answers” for the input question. For any inputquestion, at this stage 540, there may be hundreds of hypotheses orcandidate answers generated that may need to be evaluated.

The QA system pipeline 500, in stage 550, then performs a deep analysisand comparison of the language of the input question and the language ofeach hypothesis or “candidate answer” as well as performs evidencescoring to evaluate the likelihood that the particular hypothesis is acorrect answer for the input question. As mentioned above, this mayinvolve using a plurality of reasoning algorithms, each performing aseparate type of analysis of the language of the input question and/orcontent of the corpus that provides evidence in support of, or not, ofthe hypothesis. Each reasoning algorithm generates a score based on theanalysis it performs which indicates a measure of relevance of theindividual portions of the corpus of data/information extracted byapplication of the queries as well as a measure of the correctness ofthe corresponding hypothesis, i.e. a measure of confidence in thehypothesis.

In the synthesis stage 560, the large number of relevance scoresgenerated by the various reasoning algorithms may be synthesized intoconfidence scores for the various hypotheses. This process may involveapplying weights to the various scores, where the weights have beendetermined through training of the statistical model employed by the QAsystem and/or dynamically updated, as described hereafter. The weightedscores may be processed in accordance with a statistical model generatedthrough training of the QA system that identifies a manner by whichthese scores may be combined to generate a confidence score or measurefor the individual hypotheses or candidate answers. This confidencescore or measure summarizes the level of confidence that the QA systemhas about the evidence that the candidate answer is inferred by theinput question, i.e. that the candidate answer is the correct answer forthe input question.

The resulting confidence scores or measures are processed by a finalconfidence merging and ranking stage 570 which may compare theconfidence scores and measures, compare them against predeterminedthresholds, or perform any other analysis on the confidence scores todetermine which hypotheses/candidate answers are the most likely to bethe answer to the input question. The hypotheses/candidate answers maybe ranked according to these comparisons to generate a ranked listing ofhypotheses/candidate answers (hereafter simply referred to as “candidateanswers”). From the ranked listing of candidate answers, at stage 580, afinal answer and confidence score, or final set of candidate answers andconfidence scores, may be generated and output to the submitter of theoriginal input question.

As shown in FIG. 5, in accordance the illustrative embodiments, questionclustering, selection, and/or routing 590 may be performed based on theparticular training, testing, or runtime objectives of the QA system.For example, the clustering may be done during training and/or testingof the QA system pipeline 500 to generate training question set 592and/or testing question set 594, as well as clusters 596 which may beused to cluster questions into various clusters of the training questionset 592 and/or testing question set 594. The clustering may be used toselect which questions are maintained and which are discarded duringtesting based on the closeness of the question to training question setclusters.

Furthermore, during runtime, the clustering may be used to routequestion processing to a QA system pipeline 500 configured for theparticular cluster to which an input question is clustered. That is, asillustrated in FIG. 5, there may be multiple pipelines 500 configuredfor the QA system, each pipeline configured to perform question analysisand answering for a particular domain. The clustering 590 may be used toidentify which pipeline is best suited for providing answers to aparticular question based on the clustering 590 analysis of thequestion's features/attributes.

In accordance with one illustrative embodiment, during a trainingoperation for the QA system, a subset of the question pool 502 may beinput to a QA system pipeline 500 to train the QA system pipeline 500for answering questions. This subset of the question pool 502 isreferred to as the training question set and is stored as the trainingset 592 by the clustering mechanisms 590 with each question having anassociated identifier of the cluster(s) in the cluster set 596 to whichit is associated. The training question set may be selected arbitrarily,based on human analyst subjective interpretations of the questions inthe question pool 502, or the like. In some illustrative embodiments,the training question set may be selected based on one or more domainsto which the questions are directed, such that separate trainingquestion sets may be used for training different ones of QA systempipelines 500 of the QA system for use with different domains.

The input question 510 is analyzed in accordance with phase 520 of thepipeline 500 described above to extract features/attributes of the inputquestion 510. For example, through the analysis performed in phase 520,various features including the focus, lexical answer type (LAT), thequestion classification (QClass), and question sections (QSection)features may be extracted and analyzed. The focus of a question is theportion of the question that references the answer, e.g., the word “he”in the question “was he the greatest football player?” is the focus ofthe question indicating that a male person is the focus of the question.The LAT refers to the terms in the question that indicates what type ofentity is being asked for, e.g., in the statement “he liked to writepoems” the LAT is “poets”. The QClass is the type the question belongsto, e.g., name, definition, category, abbreviation, number, date, etc.,e.g., if the question is “who was the first President of the UnitedStates?,” the QClass is a name since the question is looking for a nameas the answer. The QSection refers to question fragments that requirespecial processing and inform lexical restraints on the answer, e.g.,“this 7 letter word . . . ” provides a lexical restraint on the answerbeing a 7 letter word.

The extracted features/attributes may be used as input to a clusteringalgorithm that associates the input question 510 with a particularcluster within a plurality of clusters, where each cluster represents agrouping of questions having similar features/attributes. Variousclustering algorithms may be employed to perform the clustering of thequestions based on the extracted features/attributes. Examples ofclustering algorithms that may be employed for this purpose include theclustering algorithms described in Dhillon, “Co-Clustering Documents andWords Using Bipartite Spectral Graph Partitioning,” University of Texas,Austin, KDD 2001 San Francisco, Calif., 2001 and “Word Clustering,”EAGLES Preliminary Recommendations on Semantic Encoding Interim Report,May 1998. Moreover, a number of U.S. patents and patent applicationPublications describe lexical clustering mechanisms that may be employedto perform clustering of the questions of the illustrative embodimentsincluding:

-   U.S. Pat. No. 6,804,670 entitled “Method for Automatically Finding    Frequently Asked Questions in a Helpdesk Data Set”;-   U.S. Pat. No. 6,424,971 entitled “System and Method for Interactive    Classification and Analysis of Data”;-   U.S. Pat. No. 8,108,392 entitled “Identifying Clusters of Words    According to Word Affinities”;-   U.S. Pat. No. 7,720,870 entitled “Method and System for Quantifying    the Quality of Search Results Based on Cohesion”-   U.S. Pat. No. 7,636,730 entitled “Document Clustering Methods,    Document Cluster Label Disambiguation Methods, Document Clustering    Apparatus, and Articles of Manufacture”; and-   U.S. Patent Application Publication No. 2009/0327279 entitled    “Apparatus and Method for Supporting Document Data Search.”    These are but examples of techniques used for clustering lexical    content based on features/attributes of the lexical content. Other    techniques for clustering words, groups of words, or the like, may    be applied to the questions and extracted features/attributes of the    questions in the illustrative embodiments, without departing from    the spirit and scope of the illustrative embodiments. For example,    various techniques based on classifying the features/attributes,    quantifying features/attributes, determining semantic similarities,    and the like, may be used without departing from the spirit and    scope of the illustrative embodiments.

Based on the clustering operation performed by the clustering algorithm,the input question 510 is associated with either an already establishedcluster or a new cluster is generated for the input question 510. Theassignment of a question, and its associated extractedfeatures/attributes, to a cluster may be performed with regard to adetermined measure of closeness or similarity of the question, itsassociated features/attributes, etc., with questions andfeatures/attributes already part of the established clusters. That is,if the question's features/attributes are close enough to one or moreclusters, the question and its features/attributes are then associatedwith the one or more clusters. The determination of whether thequestion's features/attributes are “close enough” may be measuredaccording to one or more thresholds defining what is “close enough.”Thus, for example, if the determined distance between a measure of thequestion, as may be determined from measures associated with thequestion's extracted features/attributes, and a center of a cluster isless than a predetermined threshold, then it may be determined that thequestion and its features/attributes should be associated with thatcluster. A question and its features/attributes may be associated withmore than one cluster if the question meets the threshold requirementsfor more than one cluster.

The above clustering may be performed with regard to a plurality ofquestions in the training question set 592 such that a plurality ofclusters may be generated with each cluster comprising one or morequestions and their associated features/attributes. Thus, a set oftraining clusters are generated, and may be stored in the clusters datastructure 596, where the training clusters indicate the types ofquestions that the QA system has been trained to recognize and answer toa satisfactory degree. That is, these questions were used to train theQA system by adjusting its operation to provide satisfactory answeringcapability for these types of questions and thus, is likely to generateanswers to similar questions during runtime with a high measure ofconfidence. The clusters are defined in accordance with commonfeatures/attributes for the various questions associated with thecluster, e.g., common category, classification, attribute scores, etc.The particular questions and their corresponding features/attributes maybe stored in the training question set 592 and may have an associatedidentifier or link to the cluster(s) in the clusters data structure 596with which the questions are associated.

Once training of the QA system has been performed, the same questionpool 502, which may comprise a larger set of questions than thoseincluded in training question set 592 such that the training questionset 592 is a subset of the question pool 502, may be used to generate atesting question set 594 to test the operation of the QA system.Depending on the desired goal of the testing, the testing questions set594 may be comprised of testing questions selected from the questionpool 502 that satisfy the testing goal with regard to similarity of thecandidate testing question to the questions in the training question set592. The clustering 590 may be used to identify the similarity ofcandidate testing questions with training questions in the trainingquestion set 592 by performing similar clustering 590 with regard to thetraining clusters stored in the clusters data structure 596 and thefeatures/attributes of the candidate testing questions.

That is, a candidate testing question is selected from the question pool502 either through an automated mechanism, a semi-automated mechanism,or a manual process and submitted to the QA system pipeline 500 in amanner similar to that described above with regard to the trainingquestions. Using an automated mechanism, questions may be selected fromthe question pool 502 in an arbitrary manner, randomly, pseudo-randomly,based on predefined criteria (e.g., creation dates, numbers of times thequestion has been selected for inclusion in a training and/or testingset, or any other suitable criteria), or the like. Similarly, in asemi-automated process, the automated mechanism may perform an initialselection of questions from the question pool 502 and a user may reviewthe initial selection and modify it as desired, such as via a graphicaluser interface of a computing device, for example, to generate a revisedset of selection candidate testing questions. In a manual process, theselection of candidate testing questions may be left entirely up to auser that selects the questions based on their own subjective decisionmaking from the question pool 502 via a graphical user interface of acomputing device. A similar selection of questions from the questionpool 502 may be performed during the training described above withregard to questions selected from the question pool 502 as candidatetraining questions for inclusion in the training set 592.

Regardless of the manner by which the candidate testing question isselected from the question pool 502, the candidate testing question isagain subjected to the question and topic analysis 520 of the pipeline500 to generate extracted features/attributes for the candidate testingquestion. This information is provided to the question clusteringprocess 590 which performs clustering of the candidate test questionbased on these extracted features/attributes with regard to thepredefined training clusters in the clusters data structure 596. Thus,based on the extracted features/attributes, the candidate testingquestion may be plotted in relation to the training clusters and theEuclidean distance between the candidate testing question and thecluster centers of the various training clusters may be identified.

For those distances that meet a predetermined criteria, e.g., thedistance is equal to or less than a predefined threshold distance, thecandidate testing question may be associated with the correspondingtraining cluster. That is, the question clustering process 590determines that the candidate testing question is significantly similarto the training questions associated with those training clusters andwould generally be added to those clusters. For example, if, through thefeature/attribute extraction process it is determined that the candidatetesting question is directed to a significantly same or similar domain,category of answer, or the like, as that of a training cluster, then thecandidate testing question may be associated with that particulartraining cluster, and such may be communicated back to a user orotherwise automatically used to determine whether to maintain oreliminate the candidate testing question from consideration forinclusion in the testing question set 594.

In other words, based on the identification of training clusters withwhich the candidate testing question is associated, the questionclustering process 590 may determine whether to keep or discard thecandidate testing question from the final testing question set 594.Whether or not to keep the candidate testing question in the finaltesting question set 594 or to eliminate the candidate testing questionfrom the testing question set 594 may be based on the specified purposefor the final testing question set 594. For example, if the finaltesting question set 594 is intended to be comprised of testingquestions that are significantly different from the training questionsin the training question set 592, then candidate testing questions thatare associated with training clusters, because their distances meet thedetermined threshold for closeness to a training cluster, may beeliminated from the testing question set 594. This may be useful to testthe ability of the QA system to be extended to questions outside theareas for which the QA system is specifically trained.

Alternatively, if the final testing question set 594 is intended to becomprised of testing questions that are significantly similar to thetraining questions in the training question set 592, for example to testthe training of the QA system with regard to similar questions, then thetesting question may be maintained in the testing question set 594 if itis significantly close enough to one or more of the training clusters(as measured by a comparison of the distance to one or morepredetermined threshold distance values). Candidate testing questionsthat are not significantly close enough may be eliminated from thetesting question set 594.

In yet another embodiment, candidate testing questions may be maintainedin the testing question set 594 if they are sufficiently close indistance to one or more training clusters, but not too close in distanceto the one or more training clusters. In other words, a first thresholdmay be defined that indicates a minimum distance away from trainingcluster centers that is required for a candidate testing question to beincluded in the testing question set 594. Candidate testing questionsthat have a distance that is equal to or less than this first thresholdto one or more of the training clusters may be eliminated from thetesting question set 594.

A second threshold may be defined that indicates a maximum distance awayfrom the training cluster centers beyond which the candidate testingquestion is determined to be too dissimilar from the training questionsto be likely to be answered correctly by the trained QA system, or, forother reasons, should not be maintained in the testing question set 594.Thus, if a candidate testing question has a distance that is greaterthan this threshold, then the candidate testing question may beeliminated from the testing question set 594. In this embodiment, onlycandidate testing questions whose distances to training clusters liebetween the first threshold and the second threshold are maintained inthe testing question set 594.

It should be appreciated that different thresholds may be associatedwith different training clusters based on the desired operation of thetraining/testing. Thus, for example, if a user wants toincrease/decrease the number of questions of a particular type,category, or having features/attributes of a particular type, in eitherthe training or testing question sets 592 or 594, the user may modifythe thresholds so as to increase/decrease the likelihood that candidatequestions from the question pool 502 directed to the particular questiontype, category, or having features/attributes of a particular type,etc., are selected for inclusion in the training/testing question sets592, 594.

Thus, with the mechanisms of the illustrative embodiments, clustering ofquestions may be used to generate training and testing question sets inaccordance with the desired training/testing goals for the QA system.This is further illustrated in FIG. 6 which shows a plot of clusters anda candidate question in accordance with one illustrative embodiment. Theplot shown in FIG. 6 is with regard to an N-dimensional space alongfeatures/attributes of the input questions. For illustration purposes, atwo-dimensional plot is depicted, however it should be appreciated thatthe plot may be along multiple dimensions in excess of 2.

As shown in FIG. 6, three training clusters 610-630 have been definedthrough the clustering process based on the features/attributes ofalready processed training questions. The training clusters 610-630represent a grouping of questions having similar features/attributesthat all fall within X % of the cluster center 680-695 of the cluster610-630.

A new candidate question 640 is then processed and plotted based on itsextracted features/attributes. The Euclidean distances 650-670 from theplotted position of the new candidate question 640 to the clustercenters 680-695 for each of the clusters 610-630 is then determined andcompared to one or more thresholds associated with the various clusters610-630. If the distance meets the requirements of the one or morethresholds associated with the cluster 610-630, then the new candidatequestion 640 is determined to be similar to the questions associatedwith that cluster 610-630 and is also associated with that cluster610-630. This may cause the definition of the cluster 610-630 to beexpanded to include the additional new candidate question 640 and maythus, expand the borders of the cluster 610-630. In the depictedexample, it is assumed that the new candidate question 640 meets thethreshold requirements for cluster 610 only and thus, is associated withcluster 610.

As will be appreciated, the new candidate question 640 may be a trainingquestion during the generation of a training question set 592 or atesting question during the generation of the testing question set 594.During training, the new candidate question 640 may be added to thecluster 610-630 with which it is determined to be associated andcorresponding information for the question and its association with acluster may be stored in a cluster data structure 596 and trainingquestion set data structure 592, for example. During generation of thetesting question set 594, additional logic may be provided fordetermining whether to keep or discard the new candidate question 640from the testing question set data structure 594 based on the comparisonof the distance to the one or more thresholds of the clusters 610-630.

In the depicted example, during the generation of the training questionset 592, the new candidate question 640 would be added to and associatedwith the cluster 610 such that the new candidate question 640 and itsassociated features/attributes are added to the definition of thetraining cluster 610. During the generation of the testing question set594, the maintaining or elimination of the new candidate question 640 inthe testing question set 594 depends on the intended use of the testingquestion set 594. If questions similar to the training questions aredesired to be included in the testing question set 594, then the newcandidate question 640 may be maintained in the testing question set594. If questions that are not too similar to the training questions aredesired to be included in the testing question set 594, and questionsthat are determined to be similar to the training questions are to beeliminated, then the new candidate question 640 may be eliminated fromthe testing question set 594 based on its determined similarity to thequestions in cluster 610. Moreover, as mentioned previously, multiplethresholds may be established to identify questions whose distance fallsoutside of a first threshold but inside another threshold with regard tothe cluster center.

It should be appreciated that while the above description describes anembodiment of the invention in which the clustering process utilizes theextraction of features and attributes from an input question performedby the QA system pipeline 500, the illustrative embodiments are notlimited to such. Rather, a separate question and topic analysis enginemay be provided in conjunction with the clustering process such thatquestion and topic analysis performed to extract the features/attributesof the input question may be performed separate from the pipeline 500.In this way, the creation of the training and testing question sets 592and 594 may be performed separate from the execution of the pipeline500. The resulting training question sets 592 and 594 may be submittedto the QA system pipeline 500 so as to train and test the QA systempipeline 500 after having been generated by the separatefeature/attribute extraction, clustering, and generation of the trainingand testing question sets 592, 594.

Thus, the illustrative embodiments provide mechanisms for assisting inthe selection of candidate questions from a question pool to be includedin one or more of a training question set and a testing question set.The selection is done with regard to the desired approach to testing theQA system. Thresholds may be defined so as to select testing questionsthat are similar, dissimilar, or within a range of similarity totraining questions used to train the QA system. Moreover, thresholds maybe set for individual training clusters so as to increase/decrease thelikelihood of similar questions being present in the testing questionset. In this way, the testing question set may be fine tuned based onthe clusters of similar questions generated during training of the QAsystem.

Returning to FIG. 5, in another aspect of the illustrative embodiments,during runtime execution of the QA system, e.g., after training andtesting have been performed using the training question set 592 andtesting question set 594 described above, the clustering process 590 mayfurther be used to perform routing of an input question to anappropriate QA system pipeline 500 that has been trained using trainingquestions similar to the input question. That is, during training of theQA system, clustering is performed to generate clusters of trainingquestions as described above. The questions of a training cluster areused to train a separate instance of the QA system pipeline 500 for theparticular training cluster. Thus, a plurality of QA system pipelines500 are generated, each one being associated with a separate trainingcluster and being trained using the training questions in the associatedtraining cluster of the cluster data structure 596. Moreover, each QAsystem pipeline 500 may be tested using testing questions that aresufficiently similar/dissimilar to the training questions in thetraining cluster associated with the QA system pipeline based on theclustering of testing questions in the manner previously describedabove. As such, in some illustrative embodiments, separate testingquestion sets 594, or subsets of a single testing question set 594, maybe generated for each of the QA system pipelines 500.

For example, during training of the QA system, clustering is performedon the training questions to generate training clusters associated withdifferent question domains, e.g., topics, areas of interest, questionsubject matter categories, or the like. These question domains may be ofvarious types including, for example, healthcare, financial, legal, orother types of question domains. These separate training clusters may beindividually utilized to train separate instances of the QA systempipeline 500 to thereby generate a plurality of trained QA systempipelines 500, e.g., one for healthcare questions, one for financialquestions, one for legal questions, and the like. Because these QAsystem pipelines are individually trained and specialized for theparticular domains that they are associated with, they can beindividually tuned through the training process to provide highlyreliable question answering for the particular domain for which they aretrained, thereby improving the confidence with which the QA systemgenerates answers for input questions of that particular domain.Moreover, since the QA system as a whole may be comprised of a pluralityof these specially trained individual QA system pipelines 500, the QAsystem as a whole is able to handle input questions from a large varietyof domains, thereby making the QA system more versatile.

Having trained and testing a plurality of such QA system pipelines 500using the clustering processes previously described, during runtime themechanisms of the illustrative embodiments may utilize clustering todetermine to which QA system pipeline 500 an input question 510 shouldbe routed. That is, after the training of the QA system pipelines 500,each training cluster in the cluster data structure 596 may beassociated with a particular QA system pipeline 500 that the trainingcluster was used to train. This association may be stored in the clusterdata structure 596 and may be used to assist in routing input questions510, such as may be received from a user via the user's client computingdevice, to a QA system pipeline 500 that has been trained to answerquestions similar to the input question 510.

When an input question 510 is received during runtime, the inputquestion 510 is processed by the question and topic analysis stage 520to extract the features/attributes of the input question 510 which arethen used as a basis for clustering the input question 510 with one ormore of the training clusters in the clusters data structure 596. Thethresholds previously described above may again be used to determine ifthe input question is sufficiently similar/dissimilar to the questionsof the various training clusters based on the determined distancebetween the input question and the cluster centers. In one illustrativeembodiment, if the input question 510 is sufficiently similar to one ormore of the training clusters, then the corresponding QA systempipeline(s) 500 are identified and the input question is submitted thoseQA system pipeline(s) for processing. The processing results in a rankedlist of answers to the input question and/or a final answer withcorresponding confidence scores as previously described above. Since theinput question 510 may be routed to more than one QA system pipeline500, these ranked lists of answers and/or final answers for each of theQA system pipelines 500 may be combined and presented to the user as alisting of candidate answers for the input question 510 withcorresponding confidence scores. Moreover, through the merging process,the candidate answers from multiple QA system pipelines 500 may bemerged and a final answer selected from the merged candidate answersbased on confidence scores.

To further illustrate the operation of the illustrative embodimentsduring runtime, FIG. 7 provides an example plot of training clusters andan input question in accordance with one illustrative embodiment. In thedepicted example of FIG. 7, a plurality of training clusters 710-730 aregenerated and a new input question A is received by the QA system. Eachof the training clusters 710-730 are associated with a separate QAsystem pipeline instance 740-760, respectively, and are used to traintheir associated QA system pipeline instances 740-760. Thus, trainingcluster 710 is associated with QA system pipeline instance 740, trainingcluster 720 is associated with QA system pipeline instance 750, andtraining cluster 730 is associated with QA system pipeline instance 760.

The new input question A is clustered with the training clusters 710-730by applying the clustering process to the features/attributes of the newinput question A, plotting the new input question A relative to thetraining clusters, determining the distance from the new input questionA to the cluster centers, and identifying a training cluster 710-730having a shortest distance between the input question A and the trainingcluster's center, and which is within any defined thresholds. In thedepicted example, input question A is closest to training cluster 710.As a result, the associated QA system pipeline instance 740 isidentified as being associated with training cluster 710 and the inputquestion A is submitted to the QA system pipeline instance 740 forprocessing and generation of a ranked listing of answers and/or finalanswer 770. This will achieve an improved performance of the QA systemwith regard to the input question A since the QA system pipelineinstance 740 has been trained to perform question answering for thedomain with which input question A is associated.

In another example, as shown in FIG. 7, input question B is receivedand, through the clustering process is associated with multiple trainingclusters, e.g., clusters 720-730. In the depicted example, this isbecause the training clusters 720-730 overlap, i.e. havefeatures/attributes of training questions that are common between theclusters 720-730, and the input question B has features/attributes lyingin this range of overlap. However, this is not the only way in which aninput question may be associated with multiple training clusters. To thecontrary, there may be no overlap between training clusters and theinput question may still be associated with more than one trainingcluster if the distances between the input question these clusters meetsthe defined threshold requirements for being associated with theclusters.

In a case where the input question is associated with multiple trainingclusters, the input question is submitted to the QA system pipelineinstances associated with each of the training clusters with which theinput question is associated. Thus, in the depicted example, the inputquestion B is submitted to each of the QA system pipeline instances750-760. Each of these QA system pipeline instances 750-760 process theinput question B separately to generate their own ranked listing ofanswers and/or final answer 780-790 and confidence scores. Theseindividual ranked listings/final answers may be merged 795 to generate asingle ranked listing of answers and/or a single final answer based onconfidence scores associated with the various answers.

In addition, with reference again to FIG. 5, the illustrativeembodiments may make use of a user interface/feedback mechanism 598 forpresenting the merged ranked listing of answers from multiple QA systempipelines 740-760 to a user and obtaining feedback input from the userspecifying which answer the user feels is the most correct answer fromthe ranked listing. That is, the user may be presented with the rankedlisting of answers and their corresponding confidence scores and mayselect an answer from the ranked listing that the user then indicates tobe the most correct answer in their subjective determination. Thisfeedback input is returned to the clustering process which uses thisinformation to add the features/attributes of the input question 510 tothe definition of the corresponding training cluster 710-730 whoseassociated QA system pipeline 740-760 generated the answer selected bythe user. In this way, the user's feedback assists in the dynamictraining of the QA system pipelines during runtime by improving thedefinition of the training cluster during runtime thereby increasing thelikelihood that subsequent similar questions will be routed to the QAsystem pipelines 740-760 that both training and user feedback indicateto be the best trained QA system pipelines 740-760 for the particularinput question.

Thus, in addition to the training and testing mechanisms describedpreviously, the illustrative embodiments may further provide mechanismsfor routing input questions to appropriately trained QA system pipelinesbased on clustering of the features/attributes of the input questions.This improves the operation of the QA system such that the QA system maybe provided with separate specialized QA system pipelines trained forseparate domains and questions may be routed to these specialized QAsystem pipelines based on a determination as to which QA system pipelineis the best suited for answer the input question. The mechanisms of theillustrative embodiments further permit user feedback to be used todynamically update the training of QA system pipelines and improve therouting of input questions to such QA system pipelines.

FIG. 8 is an example block diagram of a clustering and routing engine inaccordance with one illustrative embodiment. The elements shown in FIG.8 may be implemented in software, hardware, or any combination ofsoftware and hardware. That is, the elements in FIG. 8 are comprised oflogic, either implemented in hardware, software, or a combination ofhardware and software, for performing operations to enable thefunctionality of the clustering and routing engine 800 as describedherein. In one illustrative embodiment, the elements in FIG. 8 may beimplemented as software instructions loaded into one or more storagedevices associated with one or more data processing systems and executedby one or more processing units of these one or more data processingsystems. In other illustrative embodiments, one or more of the elementsin FIG. 8 may be implemented in one or more hardware elements, such asApplication Specific Integrated Circuits (ASICs), firmware, or the like.For purpose of the present description, it will be assumed that theelements of FIG. 8 are implemented as software instructions executed byone or more processing units.

As shown in FIG. 8, the clustering and routing engine 800 includes acontroller 810, a QA system interface 815, a user interface 820, aquestion feature/attribute analysis engine 825, a clustering engine 830,a training question set generation engine 835, a testing question setgeneration engine 840, a training/testing question set storage interface845, a clusters data structure interface 850, a question routing engine855, and a user feedback engine 860. The controller 810 controls theoverall operation of the clustering and routing engine 800 andorchestrates the operation of the other elements 815-860.

The QA system interface 815 provides a communication pathway throughwhich control messages, data, and other communications may be passedbetween the clustering and routing engine 800 and the QA system. In oneillustrative embodiment, this interface 815 may be used to communicateand utilize the question and topic analysis logic of the QA systempipeline to receive input questions and their extractedfeatures/attributes for purposes of clustering and performing subsequentclustering dependent actions as previously described above. In otherillustrative embodiments, the interface 815 may be used to selectspecific QA system pipelines, from a plurality of QA system pipelines,based on clustering to thereby route input questions to an appropriateQA system pipeline as previously described above. Still further, the QAsystem interface 815 may be used to retrieve questions from a questionpool associated with the QA system for purposes of building one or moretraining question sets, one or more testing question sets, or the like.Thus, via the QA system interface 815, question pool information may beretrieved and utilized.

User interface 820 provides logic for presenting user interfaces tousers via a data communication connection, e.g., the Internet or otherdata network, and their client computing devices, and for receiving userinput to such user interfaces. For example, the user interface 820 maybe used to provide an output of the questions in a question pool for usein user selection of questions to be considered for a training questionset and/or testing question set, an output representing the trainingquestion clusters generated through clustering, an output representingthe testing question set generated through clustering, an output of aranked listing of candidate answers to an input question during runtime,etc. The user interface 820 may further provide logic for receiving auser input to an output presented to the user for selecting a candidateanswer the user subjectively feels to be the most correct for an inputquestion to thereby provide feedback to the clustering and routingengine 800.

The question feature/attribute analysis engine 825 may receive inputquestions and perform analysis on these questions to extractfeatures/attributes of the input question for use in clustering. Theextraction of features/attributes may be done in a similar manner asdescribed previously with regard to the question and topic analysisphase of the QA system pipeline. Alternatively, the question analysismay be performed by the question and topic analysis logic of the QAsystem pipeline with which the clustering and routing engine 800 maycommunicate using the QA system interface 815, in which case thequestion feature/attribute analysis engine 825 may be eliminated.

The clustering engine 830 provides the logic for performing clusteringof questions based on their extracted features/attributes. Theclustering may be performed during generation of the training questionset so as to generate training clusters. The clustering may also be doneduring testing question set generation to identify candidate testingquestions that are to be maintained or discarded from the testingquestion set. The clustering can also be done during runtime operationof the QA system so as route an input question to an appropriate QAsystem pipeline that has been trained to answer similar questions. Theclustering engine 830 may make use of any of a variety of differentclustering algorithms to perform the clustering but performs theclustering based on the extracted features/attributes of the particularquestions.

The training question set generation engine 835 works in conjunctionwith the clustering engine 830 to generate training clusters forquestions selected to be included in a training question set. Theresulting training clusters are stored in the clusters data structure870 via the clusters data structure interface 850 and are associatedwith the questions and their features/attributes in the trainingquestion set stored in the training question set storage 880, which isaccessible via the training/testing question set storage interface 845.The training question set generation engine 835 manages and coordinatesthe correlation between training questions in the training question setand the resulting training clusters. The training question setgeneration engine 835 may generate separate training question sets foreach of the training clusters and may manage the training of separate QAsystem pipelines for each of the training clusters based on thecorresponding training questions in the training question set associatedwith the training cluster.

The testing question set generation engine 840 works in conjunction withthe clustering engine 830 to select/de-select testing questions forinclusion in one or more testing question sets based on clustering ofcandidate testing questions to previously defined training clusters inthe cluster data structure 870. That is, the features/attributes of acandidate testing question may be clustered with the training clustersto identify which clusters the candidate testing question is closest toand for which established thresholds are met, and may then determinewhether to include or eliminate the candidate testing question from thetesting question set data structure 890 based on such clustering.Whether or not to keep or discard a candidate testing question dependson the manner by which the testing question set generation engine 840 isconfigured. Such configuration information, as well as thresholds andother configuration information, may be maintained by the controller 810and used to coordinate and orchestrate the operation of the elements ofthe clustering and routing engine 800.

The training/testing question set storage interface 845 provides acommunication interface through which the training/testing question setdata structures 880-890 are made accessible. The clusters data structureinterface 850 provides a communication interface through which thecluster data structure 870 is made accessible.

The question routing engine 855 operates during runtime to route aninput question to a corresponding QA system pipeline that has beenconfigured to perform question answering for a domain to which the inputquestion is determined to be directed. That is, the question routineengine 855 may work in conjunction with the clustering engine 830 tocluster the input question to a particular training cluster and thenidentify a QA system pipeline associated with the training clusters withwhich the input question is determined to be associated. The inputquestion may then be submitted to these QA system pipeline(s) andresulting ranked listings of candidate answers may be returned andmerged to generate a merged ranked listing of candidate answers and/or afinal answer to the input question.

The user feedback engine 860 may present a user interface to a userduring runtime operation of the QA system so as to present a rankedlisting of candidate answers to the user, or a merged ranked listing ofcandidate answers if more than one QA system pipeline was used toprocess an input question. The user feedback engine 860 may then receiveinput from the user specifying which candidate answer the usersubjectively determines to be the most correct answer for the inputquestion. The user input may then be communicated by the user feedbackengine 860 to the clustering engine 830 so as to add thefeatures/attributes and question to the definition of the trainingcluster associated with the QA system pipeline that generated the userselected candidate answer. In this way, the user feedback engine 860dynamically updates the training clusters based on user feedback.

FIG. 9 is a flowchart outlining an example operation for generatingtraining question clusters in accordance with one illustrativeembodiment. As shown in FIG. 9, the operation starts by receiving atraining question (step 910). The training question is analyzed toextract its features/attributes (step 920). The training question isthen clustered with other similar training questions previouslyprocessed based on an evaluation of the features/attributes (step 930).The resulting training cluster data structure is updated and/or storedin a cluster data structure for later use (step 940). The trainingquestion is stored in a training question set data structure with a linkto the training cluster(s) with which the training question isassociated (step 950). This cluster data structure may alternatively, orin addition, store a link or identifier of an association of thetraining cluster with the training question and its features/attributes.The operation then terminates. This process may be repeated for eachtraining question that is received such that a plurality of trainingclusters may be generated with each training cluster comprising one ormore associated training questions and their features/attributes.

FIG. 10 is a flowchart outlining an example operation for generating atesting question set in accordance with one illustrative embodiment. Asshown in FIG. 10, the operation starts by receiving a candidate testingquestion (step 1010). The candidate testing question is analyzed toextract is features/attributes (step 1020). The candidate testingquestion is then clustered with pre-defined training clusters based onthe extracted features/attributes (step 1030). Based on the clustering,it is determined which training clusters the candidate testing questionis close to and for which clusters the associated threshold distancesare satisfied (step 1040). Based on these determinations, a subsequentdetermination is made as to whether to keep or discard the candidatetesting question from the testing question set (step 1050). This may bedone based on a configuration of the system as to whether testingquestions similar to the training questions, dissimilar to the trainingquestions, or sufficiently similar but having some measure ofdissimilarity are to be retrained in the testing question set. If thetesting question is to be kept, then it and its features/attributes areadded to the testing question set (step 1060). If the testing questionis not to be kept, it and its features/attributes are discarded and notincluded in the testing question set (step 1070). The operation thenterminates. This operation may be repeated for each candidate testingquestion processed by the QA system.

FIG. 11 is a flowchart outlining an example operation for processing aninput question during runtime operation of a QA system in accordancewith one illustrative embodiment. As shown in FIG. 11, the operationstarts by receiving an input question from a user (step 1110). The inputquestion is processed to extract features/attributes from the inputquestion (step 1120). The input question is then clustered with one ormore of the pre-defined training clusters to identify associations ofthe input question to one or more training clusters (step 1130). The QAsystem pipeline(s) associated with the training clusters with which theinput question is associated are identified (step 1140). The inputquestion is then submitted to the identified QA system pipeline(s) andcandidate answers are received back from the QA system pipeline(s) (step1150). The candidate answers are merged, if necessary, and presented asoutput to the user via the user's client computing device (step 1160).User feedback input is received from the user indicating which candidateanswer the user subjectively feels to be the most correct answer fromthe candidate answers (step 1170). The QA system pipeline and associatedtraining cluster that generated the user selected answer is identified(step 1180). The question and its extracted features/attributes areadded to the definition of the training cluster to thereby dynamicallyupdate the definition of the training cluster (step 1190). The operationthen terminates. This process may be repeated for each of the inputquestions received for processing during runtime operation of the QAsystem.

As noted above, it should be appreciated that the illustrativeembodiments may take the form of an entirely hardware embodiment, anentirely software embodiment or an embodiment containing both hardwareand software elements. In one example embodiment, the mechanisms of theillustrative embodiments are implemented in software or program code,which includes but is not limited to firmware, resident software,microcode, etc.

A data processing system suitable for storing and/or executing programcode will include at least one processor coupled directly or indirectlyto memory elements through a system bus. The memory elements can includelocal memory employed during actual execution of the program code, bulkstorage, and cache memories which provide temporary storage of at leastsome program code in order to reduce the number of times code must beretrieved from bulk storage during execution.

Input/output or I/O devices (including but not limited to keyboards,displays, pointing devices, etc.) can be coupled to the system eitherdirectly or through intervening I/O controllers. Network adapters mayalso be coupled to the system to enable the data processing system tobecome coupled to other data processing systems or remote printers orstorage devices through intervening private or public networks. Modems,cable modems and Ethernet cards are just a few of the currentlyavailable types of network adapters.

The description of the present invention has been presented for purposesof illustration and description, and is not intended to be exhaustive orlimited to the invention in the form disclosed. Many modifications andvariations will be apparent to those of ordinary skill in the art. Theembodiment was chosen and described in order to best explain theprinciples of the invention, the practical application, and to enableothers of ordinary skill in the art to understand the invention forvarious embodiments with various modifications as are suited to theparticular use contemplated.

What is claimed is:
 1. A method, in a data processing system comprisinga processor and a memory, for selecting a pipeline of a question andanswer (QA) system to process an input question, the method comprising:receiving, in the data processing system, an input question; analyzing,by the data processing system, the input question to identify at leastone feature of the input question; performing, by the data processingsystem, clustering of the input question with one or more previouslygenerated clusters of questions based on the at least one feature of theinput question; identifying, by the data processing system, based onresults of the clustering, a matching cluster, of the one or morepreviously generated clusters, with which the input question isassociated; identifying, by the data processing system, a QA systempipeline associated with the matching cluster; and processing, by thedata processing system, the input question using the identified QAsystem pipeline to generate one or more candidate answers for the inputquestion.
 2. The method of claim 1, wherein identifying a matchingcluster comprises: determining, for each previously generated cluster inthe one or more previously generated clusters, a distance of the inputquestion from a center of the previously generated cluster; andselecting a matching cluster, from the one or more previously generatedclusters, based on the determined distances.
 3. The method of claim 2,wherein selecting a matching cluster comprises: comparing the distancesto one or more threshold distance values; and selecting a matchingcluster based on whether or not a corresponding distance of the matchingcluster has a predetermined relationship with the one or more thresholddistance values.
 4. The method of claim 1, wherein each cluster in theone or more previously generated clusters is associated with a differentQA system pipeline, and wherein each QA system pipeline is trained foranswering questions of a different domain.
 5. The method of claim 1,wherein identifying, based on results of the clustering, a matchingcluster, of the one or more previously generated clusters, with whichthe input question is associated comprises identifying a plurality ofmatching clusters with which the input question is associated, andwherein identifying a QA system pipeline associated with the matchingcluster comprises identifying a plurality of QA system pipelinesassociated with the plurality of matching clusters.
 6. The method ofclaim 5, wherein processing, by the data processing system, the inputquestion using the identified QA system pipeline to generate one or morecandidate answers for the input question comprises generating, by eachof the QA system pipelines associated with matching clusters in theplurality of clusters, a separate ranked listing of candidate answers.7. The method of claim 6, wherein processing, by the data processingsystem, the input question using the identified QA system pipeline togenerate one or more candidate answers for the input question comprises:merging the separate ranked listings of candidate answers into a singleranked listing of candidate answers; and presenting the single rankedlisting of candidate answers to a user via a user interface.
 8. Themethod of claim 7, further comprising: receiving user feedback via theuser interface, the user feedback selecting an answer from the rankedlisting that the user indicates to be a most correct answer; and addingthe at least one feature of the input question to a definition of amatching cluster whose corresponding QA system pipeline generated theselected answer.
 9. The method of claim 1, wherein each cluster is acluster of training questions used to train a QA system pipelineassociated with the cluster.
 10. The method of claim 9, wherein eachcluster is generated through a clustering process applied to questionsselected from a pool of questions comprising both training questions andtesting questions to thereby generate the one or more previouslygenerated clusters, and wherein the one or more previously generatedclusters comprise training questions selected from the pool ofquestions.
 11. A computer program product comprising a computer readablestorage medium having a computer readable program stored therein,wherein the computer readable program, when executed on a computingdevice, causes the computing device to: receive an input question;analyze the input question to identify at least one feature of the inputquestion; perform clustering of the input question with one or morepreviously generated clusters of questions based on the at least onefeature of the input question; identify, based on results of theclustering, a matching cluster, of the one or more previously generatedclusters, with which the input question is associated; identify aQuestion and Answer (QA) system pipeline associated with the matchingcluster; and process the input question using the identified QA systempipeline to generate one or more candidate answers for the inputquestion.
 12. The computer program product of claim 11, wherein thecomputer readable program further causes the computing device toidentify a matching cluster at least by: determining, for eachpreviously generated cluster in the one or more previously generatedclusters, a distance of the input question from a center of thepreviously generated cluster; and selecting a matching cluster, from theone or more previously generated clusters, based on the determineddistances.
 13. The computer program product of claim 12, wherein thecomputer readable program further causes the computing device to selecta matching cluster at least by: comparing the distances to one or morethreshold distance values; and selecting a matching cluster based onwhether or not a corresponding distance of the matching cluster has apredetermined relationship with the one or more threshold distancevalues.
 14. The computer program product of claim 11, wherein eachcluster in the one or more previously generated clusters is associatedwith a different QA system pipeline, and wherein each QA system pipelineis trained for answering questions of a different domain.
 15. Thecomputer program product of claim 11, wherein the computer readableprogram further causes the computing device to identify, based onresults of the clustering, a matching cluster, of the one or morepreviously generated clusters, with which the input question isassociated at least by identifying a plurality of matching clusters withwhich the input question is associated, and wherein the computerreadable program further causes the computing device to identify a QAsystem pipeline associated with the matching cluster at least byidentifying a plurality of QA system pipelines associated with theplurality of matching clusters.
 16. The computer program product ofclaim 15, wherein the computer readable program further causes thecomputing device to process the input question using the identified QAsystem pipeline to generate one or more candidate answers for the inputquestion at least by generating, by each of the QA system pipelinesassociated with matching clusters in the plurality of clusters, aseparate ranked listing of candidate answers.
 17. The computer programproduct of claim 16, wherein the computer readable program furthercauses the computing device to process the input question using theidentified QA system pipeline to generate one or more candidate answersfor the input question at least by: merging the separate ranked listingsof candidate answers into a single ranked listing of candidate answers;and presenting the single ranked listing of candidate answers to a uservia a user interface.
 18. The computer program product of claim 17,wherein the computer readable program further causes the computingdevice to: receive user feedback via the user interface, the userfeedback selecting an answer from the ranked listing that the userindicates to be a most correct answer; and add the at least one featureof the input question to a definition of a matching cluster whosecorresponding QA system pipeline generated the selected answer.
 19. Thecomputer program product of claim 11, wherein each cluster is a clusterof training questions used to train a QA system pipeline associated withthe cluster.
 20. An apparatus comprising: a processor; and a memorycoupled to the processor, wherein the memory comprises instructionswhich, when executed by the processor, cause the processor to: receivean input question; analyze the input question to identify at least onefeature of the input question; perform clustering of the input questionwith one or more previously generated clusters of questions based on theat least one feature of the input question; identify, based on resultsof the clustering, a matching cluster, of the one or more previouslygenerated clusters, with which the input question is associated;identify a Question and Answer (QA) system pipeline associated with thematching cluster; and process the input question using the identified QAsystem pipeline to generate one or more candidate answers for the inputquestion.